# # python程序在加载的时候. 会给解释器内部的需要的内置一些变量加载, 加载的位置叫内置名称空间
# # 接下来就开始执行你自己的py文件, 你自己创建的, 在py文件中的这些变量统一放在全局名称空间中
# # 当我们程序执行到函数的时候, 函数内部会有自己的变量. python会为每一个正在执行的函数单独开辟内存, 该内存被称为局部名称空间
#
#
# a = 10
# print("hello world")
#
# def func():
#     a = 20
#     print(a)
#
# func()
# print(a)
#
# # 内置名称空间  python自己的内容
# # 全局名称空间  全局变量
# # 局部名称空间  在函数被调用的时候. 当函数执行完毕的时候, 会被回收, 主要存放自己函数的变量

# # 作用域, 一个变量能够发挥作用的范围. 能在哪儿调用
# # 全局作用域, 整个py文件中都可以随意的使用 , 包含全局名称空间+内置名称空间
# # 局部作用域, 只能在局部名称空间中使用的
# # 变量的搜索路径: 先找自己, 然后找外层, 最后找内置
# a = 10
# print(a)  # 全局名称空间中的内容可以在全局作用域中使用
# def func():
#     print(a)  # 全局名称空间中的内容可以在局部作用域中也可以使用
# func()

# print = 18
# print(print)


# print()
# a = 10
# def haha():
#     pass
# # 全局作用域内容: 全局名称空间+内置名称空间
# print(globals())  # globals可以查看全局作用域中的内容


# def func():
#     a = 10
#     def hehe():
#         pass
#     print(locals())  # 查看当前作用域中的内容
#
# func()


print(locals())  # 查看当前作用域
print(globals())  # 查看全局作用域